multi_console: Check functions are not NULL
authorJoel Hutton <[email protected]>
Tue, 15 Jan 2019 15:40:18 +0000 (15:40 +0000)
committerJoel Hutton <[email protected]>
Fri, 25 Jan 2019 16:23:54 +0000 (16:23 +0000)
Change-Id: I2d67bb1bebd15e6a7d69ea5e7b6fda9c972f9d86
Signed-off-by: Joel Hutton <[email protected]>
drivers/console/multi_console.c

index e94de35c7ce27d287a397c16c2ec0c16477bc1dc..a135959232c3def79d96c1fe6895a69d11691dc2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
+ * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -76,7 +76,7 @@ int console_putc(int c)
        console_t *console;
 
        for (console = console_list; console != NULL; console = console->next)
-               if (console->flags & console_state) {
+               if ((console->flags & console_state) && console->putc) {
                        int ret = console->putc(c, console);
                        if ((err == ERROR_NO_VALID_CONSOLE) || (ret < err))
                                err = ret;
@@ -93,7 +93,7 @@ int console_getc(void)
        do {    /* Keep polling while at least one console works correctly. */
                for (console = console_list; console != NULL;
                     console = console->next)
-                       if (console->flags & console_state) {
+                       if ((console->flags & console_state) && console->getc) {
                                int ret = console->getc(console);
                                if (ret >= 0)
                                        return ret;
@@ -111,7 +111,7 @@ int console_flush(void)
        console_t *console;
 
        for (console = console_list; console != NULL; console = console->next)
-               if (console->flags & console_state) {
+               if ((console->flags & console_state) && console->flush) {
                        int ret = console->flush(console);
                        if ((err == ERROR_NO_VALID_CONSOLE) || (ret < err))
                                err = ret;